<?php

class Wmp_Controller_Plugin_Translations extends Zend_Controller_Plugin_Abstract
{    
    
    /**
     *
     * @param Zend_Controller_Request_Abstract $request
     */
    public function preDispatch(Zend_Controller_Request_Abstract $request)
    {   
    	$config = Zend_Registry::get('config');
    	     	
    	$language = $request->getParam("language", null);
		
		/*//URGENT ceci est en commentaire provisoirement jusqu'à ce qu'on pussie
		 * éditer le fichier de configuration pour ajouter des langues,
		 * ou peut-etre lire la liste des langues en bdd et tester si la langue courante
		 * est définie en bdd, sinon prendre la langue par defaut.
		 * Mettre la liste des langue en cache, ne pas oublier de proposer un moyen de vider le
		 * cache coté serveur
		$languageList = explode(',',$config->languageList);
    	if(in_array($language,$languageList))
        	$locale = new Zend_Locale($config->localCodes->$language);
        else 
        	$locale = new Zend_Locale($config->defaultLanguage);
       	*/
    	$locale = new Zend_Locale($language); //URGENT ceci est provisioire, voir ci-dessus
    	//ne pas oublier de prendre en compte la région
    	
        //URGENT : voir comment mettre Zend_Translate en cache proprement
        //et qu'est ce que je voulais faire ici????	
        //Zend_Translate::setCache(Zend_Registry::get('cache'));        
		Zend_Registry::set('Zend_Locale', $locale);  //URGENT je devrais supprimer cette ligne
		//scanner partour où j'ai utilisé ; Zend_Registry::get('Zend_Locale'... et faire la correction nécessaire
		
		//les fichiers doivent se terminer pas _fr.mo (fr représent le code langue)
		$translate = new Zend_Translate('gettext',
                                		$config->path->languages->dir,
                                		null,
                               			 array('scan' => Zend_Translate::LOCALE_FILENAME,
                               			 		'disableNotices'=>true //URGENT Paramettrer ça en config
                               			 		//selon dev ou production
                               			 		)
                                		);        
        $translate->setLocale($locale);
         
        $userdata = new Zend_Session_Namespace('userdata'); 
        $userdata->local = $locale;  //URGENT : voir où j'ai utilisé ça et si possible utiliser plutot l'objet request    
        Zend_Registry::set('Zend_Translate', $translate);        
        return;        
    }    
}